Complete solution